package com.piece.core.framework.support.bootstrap;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * Bootstrap DataTable 查询参数对象
 */
@Data
public class QueryTable implements Serializable {

    // 起始数据
    private int start;

    // 每页记录数量
    private Integer length;

    // 当前页号
    private Integer currentPage;

    // 排序属性{属性名，顺序}
    private List<Order> order;

    // 分组属性
    private String group;

    // 对应dataTable的draw
    private int draw;

    // 查询sql语句
    private String hql;

    // 查询条件别名
    private String alias;

    /**
     * 结果类
     */
    @JsonIgnore
    private Class entity;

    /**
     * 关联类
     */
    @JsonIgnore
    private Class releEntity;

    /**
     * 关联属性
     */
    @JsonIgnore
    private String releKey;

    /**
     * 子类
     */
    @JsonIgnore
    private Class subEntity;

    /**
     * 子主键
     */
    @JsonIgnore
    private String subKey;

    /**
     * 子类主键值
     */
    @JsonIgnore
    private String subValue;

    /**
     * 查询条件,格式：Q_字段名称_类别_条件_关联关系<br>
     * Q: 固定查询标识<br>
     * 类别:  S:string、 L:long、 INT:int、 BD:BigDecimal、 FL:float、 SN:short、 D:date<br>
     * 条件:  LT:<、 GT:>、 EQ:=、 LE:<=、 GE:>=、 LK:like、EMP:empty、 NEMP:not empty、 NULL:null、 NNULL:not null、IN:in、 NIN:not in、 NEQ:!=<br>
     * 关联关系: AND、OR，默认为AND
     */
    private Map<String, Object> params;
}
